/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package my.contacteditor;

import banco.ConexaoMySQL;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Felipe
 */



public class Cliente {
    private int codigo;
    private String setor;
    private String nome;
    //Atributos de acesso ao banco de dados, toda a classe deve ter
    private Connection conn;
    private String sql;

    public String getNome(){
        return nome;
    }
    public String getSetor(){
        return setor;
    }
     public int getCodigo(){
        return codigo;
    }
      public void SetCodigo(int vcodigo){
       codigo = vcodigo;
   }
       public void SetSetor(String vsetor){
       setor = vsetor;
     }
        public void SetNome(String vnome){
       nome = vnome;

       ///////////////////////////////////////////
 }
        public boolean Cadastrar(String vnome,String vsetor){
            boolean retorno = false;
            //conexao ao banco de dados
            conn = ConexaoMySQL.getConexaoMySQL();
            try
        {
            //Monta o Sql de insert
            sql = "INSERT INTO Cliente (Nome,Setor) VALUES ('"+vnome+"', '"+vsetor+"')";
            Statement stm = conn.createStatement();
            stm.execute(sql);
            retorno = true;
        }
        catch(SQLException ex)
        {
            //Tratamento de erro
        }
            return retorno;

        }


      //////////////////////////////////////////////////////////////////


public boolean Excluir(int vcodigo)
{
    conn = ConexaoMySQL.getConexaoMySQL();
    boolean retorno = false;
    try
    {
    //Monta o Sql de exclusao
        sql = "DELETE FROM Cliente WHERE codigo="+vcodigo;
        Statement stm = conn.createStatement();
        stm.execute(sql);
        retorno = true;
    }
    catch(SQLException ex)
   {
            //Tratamento de erro
   }
   return retorno;
}
   
public boolean Alterar(int vcodigo, String vnome, String vsetor)
    {
        boolean retorno = false;
        //Conexao ao banco de dados
        conn = ConexaoMySQL.getConexaoMySQL();
        try
        {
            //Monta o Sql de insert
            sql = "UPDATE Cliente SET Nome='"+vnome+"', Setor='"+vsetor+"' WHERE codigo="+vcodigo;
            Statement stm = conn.createStatement();
            stm.execute(sql);
            retorno = true;
        }
        catch(SQLException ex)
        {
            //Tratamento de erro
        }
        return retorno;

        
    }
    public DefaultTableModel ListarTodos()
    {
        conn = ConexaoMySQL.getConexaoMySQL();
        String[] colunasTabela = new String[]{"Código", "Nome", "Setor"};
        DefaultTableModel modeloTabela = new DefaultTableModel(null, colunasTabela) {

            @Override
            public boolean isCellEditable(int row, int col) {
                return false;
            }
        };

        try
         {
            //Monta o Sql de consulta
            sql = "Select * from Cliente";
            Statement stm = conn.createStatement();
            ResultSet rs =  stm.executeQuery(sql);

            while(rs.next())
            {
                modeloTabela.addRow(new String[]{
                 String.valueOf(rs.getInt("codigo")),
                 rs.getString("nome"),
                 rs.getString("setor")

             });

            }

         }
         catch(SQLException ex)
         {
            //Tratamento de erro
         }

        return modeloTabela;
    }
/////////////////////////////////////////////////////////////////////////////////
       public List<Cliente> ListarTodosObj()
    {
        conn = ConexaoMySQL.getConexaoMySQL();
        //Retorno da classe, lista de clientes
        List<Cliente> clientes = new ArrayList<Cliente>();
        try
         {
            //Monta o Sql de consulta
            sql = "Select * from Cliente";
            Statement stm = conn.createStatement();
            ResultSet rs =  stm.executeQuery(sql);
            Cliente cliente;
            while(rs.next())
            {
                cliente = new Cliente();
                cliente.codigo = rs.getInt("codigo");
                cliente.nome = rs.getString("Nome");
                cliente.setor = rs.getString("Setor");
                clientes.add(cliente);
             }



         }
         catch(SQLException ex)
         {
            //Tratamento de erro
         }

        return clientes;
    }
/////////////////////////////////////////////////////////////////////////////////
}
